import {
	getToken
} from '@/utils/auth';

// 登录页面
const loginPage = '/pages/login';
const homePage = '/pages/index'; // 明确首页路径（根据你的实际路径修改）

// 页面白名单
const whiteList = ['/pages/login', '/pages/register', '/pages/common/webview/index'];

// 检查地址白名单
function checkWhite(url) {
	const path = url.split('?')[0];
	return whiteList.indexOf(path) !== -1;
}

// 页面跳转验证拦截器
let list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab'];
list.forEach((item) => {
	uni.addInterceptor(item, {
		invoke(to) {
			const token = getToken(); // 获取 token
			const isLoginPage = to.url === loginPage;
			const appOnce = uni.getStorageSync('appOnce');
			// 已登录且尝试访问登录页：跳转到首页
			if (token && isLoginPage) {
				uni.switchTab({
					url: homePage,
				});

				return false; // 阻止原跳转
			}

			// 未登录且访问非白名单页面：跳转到登录页
			if (!token && !checkWhite(to.url)) {
				uni.reLaunch({
					url: loginPage,
				});
				return false; // 阻止原跳转
			}

			return true; // 放行
		},
		fail(err) {
			console.log('路由跳转失败:', err);
		},
	});
});